perm filename TEN.2[DOC,TOB] blob sn#086260 filedate 1974-02-04 generic text, type T, neo UTF8
00100	TEN YEAR PROJECT REPORT
00200	
00300	VISION HARDWARE
00400	flying spot
00500	tv camera interface
00600	image dissector
00700	instrument tv, pan/tilt/color/focus/turret/target
00800	laser
00900	second camera
01000	
01100	VISION SYSTEMS
01200	edge follower
01300	edge operator
01400	accomodation
01500	calibration
01600	simple/complex
01700	visual feedback, corner finding  Wichman,Gill,Davis,Perkins
01800	motion/differencing
01900	motion stereo
02000	representation
02100	displays and geomed
02200	description of curved objects
02300	outdoor scenes  texture, Ruzena and Yoram
02400	Grape
02500	
02600	ARM HARDWARE
02700	Rancho arm
02800	controller, pulse width
02900	hydraulic arm
03000	Scheinman arm
03100	tachs
03200	tools
03300	touch and force
03400	two hands
03500	turntable
03600	
03700	ARM SYSTEMS
03800	computer servo
03900	Pieper-kinematics and collision avoidance
04000	Kahn-dynamics, bang-bang servo
04100	block manipulation (Paul)
04200	hand language-move,wave
04300	Newtonain servo dynamics and trajectory calculation
04400	adaptive control with force and touch
04500	two hands
04600	assembly task
04700	high performance arm control (pre-computing trajectories)
04800	
04900	SYSTEM SOFTWARE
05000	hand/eye system
05100	SAIL
05200	hand/eye library
05300	
05400	
05500	
05600	DEMONSTRATIONS
05700	water pump
05800	instant insanity
05900	screwing and cranking
06000	putting blocks in holes
06100	
06200	
06300	Breaking arm control into servo and planning elements,
06400	and by precomputing trajectories, it is possible to have
06500	intelligent choice of trajectories and still have a small
06600	system which runs on a minicomputer-the mini and maxi systems.
     

00100	The   project   has  made  several  solid  accomplishments:
00200	manipulation capabilities  which  have  enabled  a  demonstration  of
00300	automated assembly of a water pump; a representation for the shape of
00400	complex objects, laser ranging apparatus,  and  programs  which  form
00500	symbolic descriptions of complex objects such as a doll or toy horse;
00600	initial achievement in labelling  sky,  road  and  trees  in  outdoor
00700	scenes, using a world model.
00800	
00900	We  have  now  focussed  a  major  effort  on  robotics in industrial
01000	automation.  That focus  unites  work  on  strategies  for  assembly,
01100	perceptual  strategies,  representation  of  shape  and  modelling of
01200	objects, visual feedback and manipulation.  We are now working  on  a
01300	sequence of sharply defined tasks and abilities, and are constructing
01400	a system which incorporates these  abilities and  requires
01500	them to work together.
01600	
01700	Recent  progress  has  depended  on  previous  system building.   The
01800	achievement of one year in manipulation research followed three years
01900	of  design  and  construction  of  hardware, and programming adequate
02000	basic arm control and planning software. Even  that  effort  depended
02100	upon   the  experience  of  programming  the  Rancho  de  Los  Amigos
02200	prosthetic arm, and building a hydraulic arm.
02300	
     

00600	
00700	
00800	
00900	
01000		RESEARCH IN MANIPULATION 
01005	
01010	
01015	
01100	We  initially acquired and interfaced a prosthetic arm from Rancho de
01105	los  Amigos  hospital.      Although  the  device  was   mechanically
01110	inadequate,  even  after  considerable  attempts at improvements, the
01115	software experience was valuable.    A program was written to provide
01120	point  to  point  control  for arm movements. Computer servo was used
01125	from the beginning and has proved much  more  versatile  than  analog
01130	servo  for  control of the new arm.  A great deal of unnecessary work
01135	went into making up for deficiencies of the  hardware,  in  order  to
01140	carry out demonstrations of system capabilities.
01145	
01150	In order to move through crowded workspaces, a program was written to
01155	avoid obstacles while carrying out arm movements [Pieper]. That program was
01160	general,  but  it  was slow, since it used a local and not very smart
01165	search technique which  inched  its  way  around  obstacles.   It  is
01170	important to develop a fast program for collision avoidance.
01175	
01180	A  hydraulic  arm was designed and built according to design criteria
01185	of speed and strength.  Arm control software was  converted  to  this
01190	arm  and  another type of servo was developed [Kahn], minimal time servo, ie
01195	bang-bang servo.  The effect was impressive but not useful.  The  arm
01200	was  found  unwieldy  for  software development; that experience made
01205	clear some design criteria for a new arm.
01210	
01215	The next arm was designed with software in mind  [Scheinman].    The  arm  was
01220	completed   in   December  1970,  and  has  proved  a  good  research
01225	manipulator; several other  groups  have  made  copies.    A  smaller
01230	version  of  the  arm  is under construction and promises to become a
01235	laboratory standard, particularly since  its  cost  is  approximately
01240	$4000 each in quantities of two.
01245	
01250	Arm  control software for the new arm was developed concurrently, and
01255	a few months  after  the  hardware  was  in  use,  the  software  was
01260	operational.    The software was split into a small arm control servo
01265	program which ran in real time mode on  our  PDP-6  computer,  and  a
01270	trajectory planning program [Paul] written in a higher level language, SAIL.
01275	This split has proved to be very useful, in  ways  which  we  discuss
01280	later.
01285	
01290	The arm servo software contained several new features: a) feedforward
01295	from a Newtonian dynamic model of  the  arm,  including  gravity  and
01300	inertial   forces;  b)  feedback  as  a  critically  damped  harmonic
01305	oscillator including velocity information from tachs;  c)  trajectory
01310	modification facility in the servo program, which allows considerable
01315	changes  from  planned   trajectories   to   accomodate   contingency
01320	conditions.  Compare  this  control  mechanism  with the usual analog
01325	servo; the kinematic  model  and  computer  servo  allow  changes  of
01330	several  orders  of  magnitude  in the equivalent servo constants, to
01335	account for variations in gravity loads and inertial effects.
01340	
01345	The  arm  was  designed  so  that  solution  for  joint  angles  from
01350	position/orientation  is  simple and rapid.  Its geometry is the same
01355	as the Unimate.  With a change of solution, the  techniques  apply
01360	to  a  wide  range  of  arms;  thus  our  work  has  significance for
01365	industrial and other robotics applications.
01370	
01375	The MOVE_INSTANCE capability [Paul] shows a simple form of  automating  some
01380	manipulation  procedures.     The routine chooses a best grasping and
01385	departure for a class of known objects.  Models of these objects  are
01390	stored  in  order  to choose all possible grasping positions-parallel
01395	faces, a face and a parallel edge, etc.  The full range  of  possible
01400	departure  and approach angles is investigated and a solution chosen,
01405	if possible, which allows manipulation in a single motion. Otherwise,
01410	a  solution  is chosen which uses an intermediate position to regrasp
01415	the object.  Thus, this facility  provided  a  solution  to  grasping
01420	general  polyhedra in arbitrary position and orientation, provided we
01425	had a model of the object.
01430	
01435	Arm planning is based on making complete motions, eg  picking  up  an
01440	object  and  putting  it  down.  If we pick up an object arbitrarily,
01445	without thought for putting it down later, we may not be able to  put
01450	it  down  as  desired  and  may  need  to  grasp  it again.  Complete
01455	trajectories are pieced  together  from  various  segments,eg  grasp,
01460	departure,   mid-segment,   approach,  release.     Trajectories  are
01465	specified by the user in an interpretive hand language (HAL) in terms
01470	of  macros at the level of inserting a screw.  Endpoint positions and
01475	orientations are often specified by positioning the arm itself in the
01480	proper  position  and  recording joint angles, a form of "learning by
01485	doing".  The language provides facilities for control using touch and
01490	force sensing.
01495	
01500	The  project  is  unique  in  the level of accomplishment in computer
01505	controlled autonomous manipulation.  Still other advances  are  close
01510	at  hand.   A  second  arm is about to be operational, and we will be
01515	developing two hand cooperation.  For  industrial  applications  this
01520	seems  essential,  since  many assembly operations could be done by a
01525	blind man, but not with one hand.
01530	
01535			INDUSTRIAL AUTOMATION
01540	
01545	Our first major task was assembly of an automobile  water  pump.    A
01550	film which shows the process in detail is available for distribution.
01555	We describe the task in some detail to show the level of  programming
01560	the  system and the level of ability of the programmable device.  The
01565	pump parts include pump base, cover,  gasket  and  screws.   We  have
01570	chosen a plausible industrial environment with tools in fixed places,
01575	screws in a feeder, and pump body and cover on a  pallet.   The  pump
01580	body  is  mounted  on  a  plate,  which can be placed anywhere on the
01585	table, since it is located by vision.  Then it is moved to a standard
01590	position  determined  by stops. Pins are inserted into screw holes in
01595	the pump body to guide alignment of gasket and  cover;  if  necessary
01600	the  hand searches to seat the pins.    The gasket is placed over the
01605	guide pins and visually inspected for correct placement.   The  cover
01610	is  expected  to  be  within  about a quarter of an inch of its fixed
01615	place on the pallet.   After locating the cover by  touch,  the  hand
01620	places  the cover over the guide pins.   The hand then picks up a hex
01625	head power screwdriver, picks up a screw from the feeder and  inserts
01630	the  screw;  if  necessary, the hand searches to seat the screw.    A
01635	second screw is inserted.   The hand then removes the  two  pins  and
01640	inserts  four  more screws.  Finally, it tests that the pump impeller
01645	turns freely.
01650	
01655	Three forms of feedback are used, visual, tactile, and  force.    The
01660	visual  feedback  is  provided  by  strictly special purpose programs
01665	which have no general interest. We plan to generalize visual feedback
01670	capabilities  and  include them in a system like that used to program
01675	the rest of the task.    The manipulation parts of the assembly  were
01680	programmed in the Hand Language, HAL.  The actual program follows:
01685		BEGIN PUMP
01690		ALIGN			;COMMENT ALIGN PUMP BASE AT STOPS
01695		PIN P1 H1		;COMMENT PUT PIN P1 AT HOLE H1
01700		PIN P2 H2		;COMMENT PUT PIN P2 AT HOLE H2
01705		GASKET
01710		TOP
01715		SCREW1			;COMMENT PUT IN FIRST TWO SCREWS
01720		UNPIN H1 P1 H1A		;COMMENT REMOVE PIN P1 FROM HOLE H1
01725		UNPIN H2 P2 H2A		;COMMENT REMOVE PIN P2 FROM HOLE H2
01730		SCREW2			;COMMENT INSERT LAST FOUR SCREWS
01735		TEST
01740		END
01745	
01750	Each of the commands is a macro, an example of which is defined here.
01755	What follows is a Hand Language program to insert a pin  in  a  hole.
01760	The position of the hand to pick-up the pin is refered to as P.  This
01765	position is defined by moving the hand to the location of the pin and
01770	typing  "HERE  P"; the program then reads the current position of the
01775	hand and stores  it  in  P  ("learning  by  doing").   Similarly  the
01780	position  just  above  the  hole  where  the insertion is to begin is
01785	defined by "HERE T". This is done with the pin in the hand.
01790		DEFINE PIN
01795		MOVE P 			;GO TO THE PIN
01800		CLOSE 0.1		;PICK UP PIN
01805		MOVE T 			;GO TO THE HOLE
01810		SEARCH .07		;SET SEARCH INCREMENT
01815		L1:	MOVE T 		;GO TO THE HOLE
01820		STOP [0 0 -50]		;SET UP STOP ON FORCE CONDITION
01825		CHANGE [0 0 -1] 0.6 	;TRY TO GO DOWN WITHOUT RESISTANCE
01830		SKIPE 23		;SKIP IF NO FORCE ENCOUNTERED
01835		AOJ L1			;ADD SEARCH INCREMENT AND JUMP
01840		STOP [0 0 -60]		;SET UP STOP ON FORCE CONDITION
01845		CHANGE [0 0 -1] 0.7 	;SHOULD MEET SOME RESISTANCE
01850		SKIPN 23		;SKIP IF FORCE ENCOUNTERED
01855		AOJ L1			;ADD SEARCH INCREMENT AND JUMP
01860		SAVE H			;REMEMBER WHERE HOLE ACTUALLY IS
01865		OPEN .5			;RELEASE PIN
01870		CLOSE -.1 		;CHECK THAT IT IS STILL THERE
01875		OPEN 1			;RELEASE AGAIN
01877	The pin should go into the hole without  resistance,  then  encounter
01882	resistance.    If  it  does  not  encounter  resistance at the proper
01887	height, then the pin is off the pump body and the search resumes.
01895	
01900	The  task  was  performed  in  a general purpose hand language with a
01905	control program which could be readily adapted to other manipulators.
01910	Thus  the system is more than a special purpose demonstration.  It is
01915	of utility as the first level of programming  assembly  devices.   If
01920	programmable  assembly  devices are to have wide use in batch and low
01925	volume production, their programming must be made simple enough to be
01930	economical.
01935	
01940	We  separate the planning and execution of arm motions; this allows a
01945	separation of systems into a mini system for  execution  and  a  maxi
01950	system  for  planning.    The  mini  system  is a small configuration
01955	minicomputer-based assembly station.  The maxi system would reside in
01960	a  factory  central  computer  which handles scheduling of resources,
01965	design, communication, routing of parts, etc.  The maxi system  could
01970	take advantage of design information in the central system, and large
01975	file system, graphics and  problem-solving  languages.   Its  use  is
01980	shared  among many machines since reprogramming is done at intervals,
01985	only when tasks are changed. The mini system is  low  cost,  yet  its
01990	behavior  can  be  pre-planned  and  optimized  by  the  maxi system,
01995	utilizing intelligent and efficient planning.
02000	
02005	There are many reasons for believing that the level  of  manipulation
02010	which  we  have demonstrated, and some simple vision capability, have
02015	important industrial applications.  There are a class of tasks  which
02020	can  only  be  done  by machines, not humans, eg reactor assembly and
02025	maintenance.  Occupation hazards legislation now requires that people
02030	not  operate  punch  presses  and other machines with great sound and
02035	injury hazards.  Fixed automation is  limited  to  very  high  volume
02040	production,  ie over one million units.  For batch production and low
02045	volume production, it is a case of automating processes which are not
02050	otherwise  automatable. Industrial robots already have some market (a
02055	few million dollars per year) and we can foresee that upgrading  them
02060	with  sensors which add little to cost can have great impact on their
02065	utility.   Our own designs give us some feeling for costs so that  we
02070	can  see  that for small scale assembly, system costs of $10k for two
02075	arms, touch and force sensors, and a minicomputer.  The falling  cost
02080	of  computation  is  an important factor.   Finally, the benefits for
02085	product quality and design techniques are considerable.  We have made
02090	some  of  these  arguments in detail in a proposal for support of our
02095	industrial automation  effort  and  they  will  be  only  briefly
02100	summarized below.
02105	
02110	We  think  that  the  robotics  capabilities  and  the  cost  factors
02115	constitute  a  "technology  push"  which  will  move   designers   to
02120	incorporate  such  devices.     Rough cost factors for such a general
02125	assembly device in quantities of 1000 are: two small  Scheinman  arms
02130	$1000  each including hand, touch and force sensing $800, arm drivers
02135	and interface $1000, small  computer  with  8k  memory  $4500,  total
02140	$8300.  We assume that the price is twice the cost, or about $20,000.
02145	Unimation now projects labor costs at $22000-$24000 per year averaged
02150	over  the  next  ten  years, and assumes a payoff over 2 years for an
02155	acceptable cost of $46,000.
02160	
02165	Two conclusions appear from  industrial  representatives  at  various
02170	workshops:    automation should be programmable; automation should be
02175	incremental.       We  contend  that  incremental  incorporation   of
02180	programmable  assembly  devices  requires  a  sophistication  of  the
02185	assembly device which requires further directed research, but that it
02190	is within reach.
02195	
02200	The  improved quality of automated processes cuts costs of repair and
02205	warranty, and decreases inspection costs.  There are important design
02210	advantages  in  programmable  automation,  since  much smaller design
02215	costs are required for small changes or  for  small  lot  production.
02220	Briefly  summarized,  some  advantages  are:   economies  of scale in
02225	hardware  quality  and  cost;   economies   of   intellectual   scale
02230	(commonality  of  design); longer life for tools; more flexibility in
02235	design  and  modification;  more  efficient  scheduling  and   better
02240	utilization; less capital tied up in stockpiling.
02245	
02250	A  primary  research  effort  is  required  for  programming assembly
02255	robots.  Although robots  will  be  useful  even  if  programming  is
02260	moderately painful, their full impact will come when changing jobs is
02265	simple.   We are planning to  attack  that  problem  by  building  an
02270	interactive   system   combining   an   APT-like  language,  graphics
02275	techniques for displaying 3-d objects, with vision  and  manipulation
02280	primitives.     "Learning by doing" is already available, and we will
02285	combine that with the  symbolic  abilities  just  indicated.       An
02290	attractive  possibility  is  that  of  providing  the designer with a
02295	simulation system which will aid "design for  automation"  by  giving
02300	feedback  on what is achievable by the programmable assembly devices.
02305	Simultaneously, a program for the assembly device would come from the
02310	design process.
     

00100		VISION RESEARCH
00200	
00300	
00400	
00500	During  the  past two years our vision effort has shifted from scenes
00600	of blocks to outdoor scenes and scenes of  complex  objects  such  as
00700	dolls  or  toy horses.  In both cases, interpretation has made use of
00800	world models.
00900	
01000	A crucial part of our work with complex objects is our development of
01100	suitable  representation of shape.  This is an area closely connected
01200	with industrial applications of  research,  since  representation  of
01300	shape  is important in programming of robots, design, display, visual
01400	feedback, assembly, and symbolic description  for  recognition.     A
01500	class of representations of shape has been evolved [Binford 1971], and applied to
01600	symbolic description of shapes  of  toys  and  tools  [Agin,Nevatia]. The
01700	representation  depends  on  a  part/whole  description of objects in
01800	terms of parts which may themselves be composed  of  parts.       The
01900	success  of  any  part/whole representation depends on the utility of
02000	the primitive parts; within the representation,  dominant  primitives
02100	are  "generalized  cones",  originating  from  a formalization called
02200	"generalized translational invariance" [Binford 1971].     These  primitives  are
02300	locally  defined  by  an  arbitrary  cross  section and a space curve
02400	called the axis, along which the cross sections are translated normal
02500	to the axis.
02600	
02700	Local  pieces  of  primitives  are  strung  together  continuously to
02800	generate complete primitives like a screw, doughnut, snake, etc.    A
02900	complete primitive is a cross section which varies continuously along
03000	a continuous space curve called the axis, always normal to the  axis.
03100	A  rich  set  of  primitive shapes can be generated from simple local
03200	models, and the primitives can be combined in a wide variety of ways.
03300	Complete  descriptions  are  graphs of structured parts.    The local
03400	models provide an appropriate level  of  semantic  guide  to  control
03500	local description processes.
03600	
03700	We  have  developed  laser  depth  ranging  hardware  which  has been
03800	operative since January 1971.  The device is very simple and  can  be
03900	replicated  now  for  less  than  $1000,  assuming  that  a  suitably
04000	sensitive camera tube such as a silicon vidicon or solid state sensor
04100	is available.  From that experimental data, we have obtained complete
04200	descriptions of a doll, a toy  horse,  a  glove,  etc,  in  terms  of
04300	part/whole descriptions in the representation just described.     The
04400	same techniques could be used for monocular images, with considerable
04500	benefit,  in  spite  of  the added difficulty of using only monocular
04600	information.      We are now writing programs which match these graph
04700	descriptions for recognition.
04800	
06400	We are applying this work to visual feedback for assembly.  Our basic
06500	approach  to visual feedback is to take advantage of the fact that we
06600	already know a great deal  about  a  scene  in  which  we  are  doing
06700	assembly.     We  can use that knowledge to predict the appearance of
06800	relevant parts for  aligning  surfaces,  in  scenes  which  are  more
06900	complicated  than  could  be  understood  by our programs without the
07000	knowledge.    We are building a visual feedback ability which depends
07100	on  a) representing objects within the representation just described,
07200	b) predicting desired curves by converting the object  representation
07300	to  the  usual  polyhedral  representation  as  input  to  a computer
07400	graphics package, and c)  matching  the  predicted  curve  with  edge
07500	points  in  the  image.  The first two steps are completed, the final
07600	step is in progress.   Visual feedback will thus be model-driven, and
07700	by  specifying  the  mating  surfaces,we  will  be able to generate a
07800	program which aligns the surfaces as  desired.       This  degree  of
07900	automating of visual feedback is of great value in programming robots
08000	for assembly.   Programming thus becomes a process of describing  the
08100	parts to be mated to an interactive system. Of particular interest is
08200	the case of repetitive operations, for which  the  part  description,
08300	transformation  of  representation  and  graphics  can  be  done on a
08400	central time-sharing system, while the matching with edge data can be
08500	done on a mincomputer in the assembly module.
08600	
08700	Several previous experiments have laid the groundwork for our present
08800	attack on the problem.  Wichman [Wichman] executed the first robotics visual
08900	feedback  system.   It was deficient in several ways:  only the outer
09000	edges of the blocks were observed; thus the hand had  to  be  removed
09100	from  view,  and  the technique was limited in its domain of objects.
09200	Gill [Gill] then improved  these  aspects  by  recognizing  hand  marks  and
09300	internal  edges  of  blocks.      The system was model driven in that
09400	specifying the projected appearance of a corner  in  a  small  window
09500	programmed  the system for a new task.  But the system was limited to
09600	tasks with polyhedra, eg stacking blocks and  inserting  blocks  into
09700	holes.     In addition, a coordination of calibration of hand and eye
09800	coordinate systems was used, by tracking  the  hand  through  several
09900	positions.    A stereo block alignment module was also programmed.
10000	Perkins [Perkins] made an improved  corner  finder  which  incorporated  the
10100	Hueckel  edge operator and identifcation of straight lines by looking
10200	for clusters in a line parameter space.
10205	   Because  the  program  uses
10300	models  of  expected images and can find edges with low contrast, the
10305	system works well in the block world.
10400	      We  are
10500	thus  pushing  forward into feedback with curved objects as described
10600	above.
10700	
10800	The work on visual feedback depends on display techniques which  have
10900	been  developed here and elsewhere.  An interactive program GEOMED [Baumgart]
11000	was developed here by Baumgart to allow description of objects by  building  them
11100	up  from  a set of geometric primitives.  The usually tedious task of
11200	input of descriptions of complex objects is much simplified.  For our
11300	purposes,  a symbolic line drawing output is necessary; a fast hidden
11400	line elimination program with symbolic line output structure has been
11500	written [Baumgart].
11600	
11700	Working with outdoor scenes introduces new difficulties: surfaces are
11800	textured, line finders etc.,  have  been  specialized  to  scenes  of
11900	polyhedra.     We have made substantial progress by incorporating new
12000	visual modules such as color region finders with a world model.   The
12100	first  of these efforts [Bajcsy] included a color region finder aad Fourier
12200	descriptors of texture.  Textures were described  by  directionality,
12300	contrast,  element  size and spacing.  These interpretations from the
12400	Fourier transform are useful but not always valid, and  a  discussion
12500	of  the limitations of Fourier descriptors was included.   Depth cues
12600	were obtained from the gradient of texture.  The results of color and
12700	texture  region  growing  were  shown,  and  a  simulation  made of
12800	combining these various modes with a world model.     An  interesting
12900	conclusion  was  that three dimensional interpretations and cues were
13000	the most semantic help in scene interpretation.
13100	
13200	
13300	A  second  project with outdoor scenes has made considerable progress
13400	[Yakimovsky].    Yakimovsky has made a region-based system  which  sequentially
13500	merges   regions   based  on  semantics  of  familiar  scenes,  using
13600	two-dimensional image properties.    The system has an  intial  stage
13700	which  is  very  much  like  other region approaches, merging regions
13800	based on similarity of color and other crude descriptors except  that
13900	it eliminates weakest boundaries first. The second stage introduces a
14000	world model and a means of estimating the best interpretation of  the
14100	scene  in  terms  of  that model.    Interpretation is evaluated by a
14200	"first-order statistical" semantics.   An overall  linear  evaluation
14300	function  is  made;  each  region  is  evaluated  not  only  for  its
14400	consistency with an assumed label from  the  model,  but  to  include
14500	"first-order"   consistency   of  interpretation,  according  to  its
14600	boundary properties with neighbors.      Upper and  lower  limits  of
14700	interpretation  consistency are evaluated, and a tree formed of merge
14800	choices.         The  tree  is  eventually  backed  up  to  the  best
14900	interpretation.  The semantic evaluation provides much better regions
15000	than the same system without the semantics.  The system  is  able  to
15100	interactively  acquire  its  statistics  of  occurrence of region and
15200	boundary properties from sample pictures, what might be called a  low
15300	level  of  learning.     It has been demonstrated on road scenes, for
15400	which rather good segmentations and labellings have been  achieved.An
15500	application to heart angiograms was also made.
15600	
15700	In  human and animal peception, stereo and motion perception of depth
15800	are important.     Several of these mechanisms have been  programmed.
15900	Nevatia  evaluated motion parallax of a moving observer for scenes of
16000	rocks.     That program tracked by correlation subsequent images in a
16100	series  of  images with small angle between images.     The technique
16200	allows large baselines for triangulation, and thus  is  suitable  for
16300	depth  perception  at  large distances.
16500	Another approach to stereo has been carried out on outdoor scenes [Hannah
16550	unpublished].
16600	Several aspects of  stereo  have  been  considered:        a)  stereo
16700	correspondence  in  images  without calibration.      b) establishing
16800	calibration from stereo correspondences, to  enable  self-calibration
16900	of remotely operated systems; c) stereo correspondence in images with
17000	a well-established relative calibration.   A  sorting  technique  for
17100	color  and  other  features  saved considerable computation.     With
17200	current hardware, brute force techniques are too costly in  computing
17300	time  for  practical  utility.   Effort has been to choose techniques
17400	which gave considerable gain  over  brute  force  techniques  and  to
17500	evaluate  techniques  which  might  become  useful  with  foreseeable
17600	increases in computing power.
17700	
17800	A considerable effort has gone into the complex of problems which are
17900	raised  in  seeking  a  system  which is able to do not just a single
18000	task, but makes it simple to perform many tasks.  We have in  mind  a
18100	vision  system  for different tasks or environments, or a programming
18200	system to program assembly robots.  These problems have led  us  into
18300	work  on strategies, representation, and system design.    The system
18400	design has been concerned with introducing and  incorporating  modern
18500	language  features, and communication among cooperating processes, in
18600	spite of limitations of the current time-sharing system.  The  system
18700	is  organized  about  co-operating  modules  programmed  more or less
18800	independently.    Modules have agreed-upon communication  through  a
18900	global  data base and message handler.   Considerable standardization
19000	has been achieved, so that several users easily work with arm and eye
19100	modules.       Recently,  we  have  begun  work  on systematizing the
19200	bookkeeping of combining vision programs into a system by defining  a
19300	set  of  special  vision  language primitives within our higher level
19400	language SAIL.    These are ways of simplifying the human  interface,
19500	but   also   simplifying   the   interface  with  strategy  programs.
19600	Eventually, they will lead  to  an  APT-like  language  for  assembly
19700	automation.
19800	
19900	We  have developed various modules for that system.  An edge operator
20000	[Hueckel] gives a good indication  based  on  local  brighness  evidence  of
20100	whether or not there is an edge near the center of a neighborhood. If
20200	there is an edge, its  position  and  location  are  relatively  well
20300	determined.    Differencing techniques have been used to find changes
20400	in scenes.       Color region  growing  techniques  have  been  used.
20500	Accomodation  of camera parameters to optimize image quality for each
20600	task has been extensively used.  An edge verifier has been used which
20700	is  intended  to  verify  or  reject hypotheses from an edge proposal
20800	module from one of the body interpretation programs.     A  focussing
20900	module  allows automatic focussing.   It could potentially be used in
21000	depth measurement, but its accuracy is much worse  than  other  depth
21100	measurement  techniques.       Color identification modules have been
21200	written; the latest incorporates the Retinex model of Land to achieve
21300	a   certain   color   constancy,  independent  of  the  variation  of
21400	illuminance spectrum from scene  to  scene  (sunlight,  incandescent,
21500	xenon  arc,  flourescent) or within a scene (reflections from colored
21600	objects).  Several corner finders {Gill,Perkins] have been programmed
21700	for  use  in visual feedback with blocks.   Calibration modules allow
21800	maintaining  a  system  in  a  well-calibrated  state   to   maintain
21900	reliability, and increase reliability by self-calibration.
22000	
22100	Several  programs  have  been  written  to understand scenes of blocks
22200	given line drawings.  An early version  recognized only outlines of
22300	isolated  objects. A later program, COMPLEX [Falk], arrived at segmentations
22400	into objects by techniques which were extension of Guzman's but using
22500	lines  rather  than  regions.   THis allowed more effectively dealing
22600	with missing and extraneous edges.   The  system  used  very  limited
22700	prototypes of objects, using size in an important and restrictive way
22800	to identify objects and their spatial relations.  Missing edges  were
22900	hypothesized for a line verifier program to confirm or reject.  Still
23000	another model-based program [Grape] used models of a parallelipiped and a  wedge
23100	to perform the segmentation into objects corresponding to models.  It
23200	is able to handle a variety of missing  and  extraneous  edges.   The
23300	thrust of all these efforts is the use of models for perception.
23400	
23500